home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / xalan.jar / org / apache / xalan / xpath / FuncSubstring.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-04-12  |  1.2 KB  |  43 lines

  1. package org.apache.xalan.xpath;
  2.  
  3. import java.util.Vector;
  4. import org.w3c.dom.Node;
  5. import org.xml.sax.SAXException;
  6.  
  7. public class FuncSubstring extends Function {
  8.    public XObject execute(XPath var1, XPathSupport var2, Node var3, int var4, Vector var5) throws SAXException {
  9.       String var6 = ((XObject)var5.elementAt(0)).str();
  10.       double var7 = ((XObject)var5.elementAt(1)).num();
  11.       int var9 = var6.length();
  12.       String var10;
  13.       if (var9 <= 0) {
  14.          var10 = "";
  15.       } else {
  16.          int var11;
  17.          if (Double.isNaN(var7)) {
  18.             var7 = (double)-1000000.0F;
  19.             var11 = 0;
  20.          } else {
  21.             var7 = (double)Math.round(var7);
  22.             var11 = var7 > (double)0.0F ? (int)var7 - 1 : 0;
  23.          }
  24.  
  25.          if (var5.size() > 2) {
  26.             double var12 = ((XObject)var5.elementAt(2)).num();
  27.             int var14 = (int)((double)Math.round(var12) + var7) - 1;
  28.             if (var14 < 0) {
  29.                var14 = 0;
  30.             } else if (var14 > var9) {
  31.                var14 = var9;
  32.             }
  33.  
  34.             var10 = var6.substring(var11, var14);
  35.          } else {
  36.             var10 = var6.substring(var11);
  37.          }
  38.       }
  39.  
  40.       return new XString(var10);
  41.    }
  42. }
  43.